#pragma once

#include "igamestate.h"

// SGD Wrappers
#include "SGD Wrappers/CSGD_Direct3D.h"
#include "SGD Wrappers/CSGD_DirectInput.h"
#include "SGD Wrappers/CSGD_TextureManager.h"
#include "SGD Wrappers/CSGD_XAudio2.h"

#include "BitmapFont.h"

class MainMenuState : public IGameState
{
private:

	MainMenuState(void);
	MainMenuState(const MainMenuState&);
	MainMenuState& operator=(const MainMenuState&);
	virtual ~MainMenuState(void);

	// SGD Wrappers
	CSGD_Direct3D*				D3D;
	CSGD_DirectInput*			DI;
	CSGD_TextureManager*		TM;
	CSGD_XAudio2*				XA;

	// Font variable
	CBitmapFont* GroupFont;

	// Image variables
	int	FontImageID;

	// Cursor information
	int CursorX;
	int CursorY;

	// Music information
	int SFXVolume;
	int musicVolume;

public:

	virtual void Enter(void);
	virtual void Exit(void);
	virtual bool Input(void);
	virtual void Update(float elapsed);
	virtual void Render(void);
	static MainMenuState* GetInstance(void);

	// Get and set volumes
	int GetMusicVolume(void) {return musicVolume;}
	void SetMusicVolume(int music) {musicVolume = music;}
	int GetSFXVolume(void) {return SFXVolume;}
	void SetSFXVolume(int sfx) {SFXVolume = sfx;}

	// load volume
	bool LoadSounds(const char* szFileName);

};